/**
 * 解决LeetCode 203题
 * 使用dummyHead
 * 可以直接复用，解决第一个节点的特殊处理的问题，代替head
 *
 */
public class Solution2 {
    public ListNode removeElements(ListNode head, int val) {
        //dummyHead的val不重要，随便写
        ListNode dummyHead  = new ListNode(-1); //它会是第一个节点的前一个节点，可以解决第一个节点的特殊处理
        dummyHead.next=head;

        //使用dummyHead解决了第一个节点的特殊处理环节

        ListNode prev = dummyHead;
        while(prev.next!=null){
            if(prev.next.val==val){
                prev.next=prev.next.next;
            }else{
                prev = prev.next;
            }
        }

        return dummyHead.next;
    }
}
